home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc / Sample Code / Sample Editors⁄Viewers / Cappuccino / _SOM_ / CappuccinoSI.cpp next >
Encoding:
C/C++ Source or Header  |  1995-12-11  |  10.3 KB  |  334 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        CappuccinoSI.cpp
  3.  
  4.     Contains:    Implementation of Mac-specific CappuccinoSI class.
  5.  
  6.     Written by:    Troy Gaul (from SemtIntf.cpp by Nick Pilch)
  7.  
  8.     Copyright:    © 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  9. */
  10.  
  11.  
  12. #ifndef _EXCEPT_
  13. #include "Except.h"
  14. #endif
  15.  
  16. #define VARIABLE_MACROS
  17. #define CappuccinoSI_Class_Source
  18. #include <CappuccinoSI.xih>
  19.  
  20. //------------------------------------------------------------------------------
  21. // CappuccinoSI::somInit
  22. //------------------------------------------------------------------------------
  23.  
  24. SOM_Scope void  SOMLINK CappuccinoSIsomInit(CappuccinoSI *somSelf)
  25. {
  26.     // CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  27.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSIsomInit");
  28.  
  29.     CappuccinoSI_parents_somInit(somSelf);
  30.  
  31.     /* _fHelper = kODNULL; */ // som initializes fields to NULL.
  32. }
  33.  
  34. //------------------------------------------------------------------------------
  35. // CappuccinoSI::InitCPlusSemanticInterface
  36. //------------------------------------------------------------------------------
  37.  
  38. SOM_Scope void  SOMLINK CappuccinoSIInitCPlusSemanticInterface(CappuccinoSI *somSelf, Environment *ev,
  39.         ODPart* base,
  40.         SIHelperAbs* helper,
  41.         ODSession* session)
  42. {
  43.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  44.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSIInitCPlusSemanticInterface");
  45.     
  46.     SOM_TRY
  47.     somSelf->InitSemanticInterface(ev, base, session);
  48.     SOM_CATCH_ALL
  49.     SOM_ENDTRY
  50.     
  51.     _fHelper = helper;
  52. }
  53.  
  54. //------------------------------------------------------------------------------
  55. // CappuccinoSI::somUninit
  56. //------------------------------------------------------------------------------
  57.  
  58. SOM_Scope void  SOMLINK CappuccinoSIsomUninit(CappuccinoSI *somSelf)
  59. {
  60.     // CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  61.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSIsomUninit");
  62.  
  63.     CappuccinoSI_parents_somUninit(somSelf);
  64. }
  65.  
  66. //------------------------------------------------------------------------------
  67. // CappuccinoSI::GetSIHelper
  68. //------------------------------------------------------------------------------
  69.  
  70. SOM_Scope SIHelperAbs*  SOMLINK CappuccinoSIGetSIHelper(CappuccinoSI *somSelf, Environment *ev)
  71. {
  72.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  73.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSIGetSIHelper");
  74.  
  75.     return _fHelper;
  76. }
  77.  
  78. //------------------------------------------------------------------------------
  79. // CappuccinoSI::CallEventHandler
  80. //------------------------------------------------------------------------------
  81.  
  82. SOM_Scope void  SOMLINK CappuccinoSICallEventHandler(CappuccinoSI *somSelf, Environment *ev,
  83.         ODPart* thePart,
  84.         ODAppleEvent* theODAppleEvent,
  85.         ODAppleEvent* reply)
  86. {
  87.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  88.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallEventHandler");
  89.  
  90.     OSErr error;
  91.     SOM_TRY
  92.         somSelf->CheckValid(ev);
  93.         error = _fHelper->CallEventHandler((ODPart*)somSelf->GetBase(ev),
  94.                                                 theODAppleEvent, reply);
  95.         THROW_IF_ERROR(error);
  96.     SOM_CATCH_ALL
  97.     SOM_ENDTRY
  98. }
  99.  
  100. //------------------------------------------------------------------------------
  101. // CappuccinoSI::CallCoercionHandler
  102. //------------------------------------------------------------------------------
  103.  
  104. SOM_Scope void  SOMLINK CappuccinoSICallCoercionHandler(CappuccinoSI *somSelf, Environment *ev,
  105.         ODPart* thePart,
  106.         ODDesc* theODDesc,
  107.         ODDescType toType,
  108.         ODDesc* result)
  109. {
  110.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  111.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallCoercionHandler");
  112.  
  113.     OSErr error;
  114.     SOM_TRY
  115.         somSelf->CheckValid(ev);
  116.         error = _fHelper->CallCoercionHandler((ODPart*)somSelf->GetBase(ev),
  117.                                                 theODDesc, toType, result);
  118.         THROW_IF_ERROR(error);
  119.     SOM_CATCH_ALL
  120.     SOM_ENDTRY
  121. }
  122.  
  123. //------------------------------------------------------------------------------
  124. // CappuccinoSI::CallObjectAccessor
  125. //------------------------------------------------------------------------------
  126.  
  127. SOM_Scope void  SOMLINK CappuccinoSICallObjectAccessor(CappuccinoSI *somSelf, Environment *ev,
  128.         ODPart* thePart,
  129.         ODDescType desiredClass,
  130.         ODOSLToken* container,
  131.         ODDescType containerClass,
  132.         ODDescType form,
  133.         ODDesc* selectionData,
  134.         ODOSLToken* value)
  135. {
  136.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  137.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallObjectAccessor");
  138.  
  139.     OSErr error;
  140.     SOM_TRY
  141.         somSelf->CheckValid(ev);
  142.         error = _fHelper->CallObjectAccessor((ODPart*)somSelf->GetBase(ev),
  143.                                                 desiredClass, container,
  144.                                                 containerClass, form,
  145.                                                 selectionData, value);
  146.         THROW_IF_ERROR(error);
  147.     SOM_CATCH_ALL
  148.     SOM_ENDTRY
  149. }
  150.  
  151. //------------------------------------------------------------------------------
  152. // CappuccinoSI::CallPredispatchProc
  153. //------------------------------------------------------------------------------
  154.  
  155. SOM_Scope void  SOMLINK CappuccinoSICallPredispatchProc(CappuccinoSI *somSelf, Environment *ev,
  156.         ODPart* thePart,
  157.         ODAppleEvent* theODAppleEvent,
  158.         ODAppleEvent* reply)
  159. {
  160.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  161.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallPredispatchProc");
  162.  
  163.     OSErr error;
  164.     SOM_TRY
  165.         somSelf->CheckValid(ev);
  166.         error = _fHelper->CallPredispatchProc((ODPart*)somSelf->GetBase(ev),
  167.                                                 theODAppleEvent, reply);
  168.         THROW_IF_ERROR(error);
  169.     SOM_CATCH_ALL
  170.     SOM_ENDTRY
  171. }
  172.  
  173. //------------------------------------------------------------------------------
  174. // CappuccinoSI::CallCompareProc
  175. //------------------------------------------------------------------------------
  176.  
  177. SOM_Scope void  SOMLINK CappuccinoSICallCompareProc(CappuccinoSI *somSelf, Environment *ev,
  178.         ODPart* thePart,
  179.         ODDescType oper,
  180.         ODOSLToken* obj1,
  181.         ODOSLToken* obj2,
  182.         ODBoolean* result)
  183. {
  184.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  185.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallCompareProc");
  186.  
  187.     OSErr error;
  188.     SOM_TRY
  189.         somSelf->CheckValid(ev);
  190.         error = _fHelper->CallCompareProc((ODPart*)somSelf->GetBase(ev), oper,
  191.                                                 obj1, obj2, result);
  192.         THROW_IF_ERROR(error);
  193.     SOM_CATCH_ALL
  194.     SOM_ENDTRY
  195. }
  196.  
  197. //------------------------------------------------------------------------------
  198. // CappuccinoSI::CallCountProc
  199. //------------------------------------------------------------------------------
  200.  
  201. SOM_Scope void  SOMLINK CappuccinoSICallCountProc(CappuccinoSI *somSelf, Environment *ev,
  202.         ODPart* thePart,
  203.         ODDescType desiredType,
  204.         ODDescType containerClass,
  205.         ODOSLToken* container,
  206.         ODSLong* result)
  207. {
  208.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  209.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallCountProc");
  210.  
  211.     OSErr error;
  212.     SOM_TRY
  213.         somSelf->CheckValid(ev);
  214.         error = _fHelper->CallCountProc((ODPart*)somSelf->GetBase(ev),
  215.                                             desiredType, containerClass,
  216.                                             container, result);
  217.         THROW_IF_ERROR(error);
  218.     SOM_CATCH_ALL
  219.     SOM_ENDTRY
  220. }
  221.  
  222. //------------------------------------------------------------------------------
  223. // CappuccinoSI::CallDisposeTokenProc
  224. //------------------------------------------------------------------------------
  225.  
  226. SOM_Scope void  SOMLINK CappuccinoSICallDisposeTokenProc(CappuccinoSI *somSelf, Environment *ev,
  227.         ODPart* thePart,
  228.         ODOSLToken* unneededToken)
  229. {
  230.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  231.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallDisposeTokenProc");
  232.  
  233.     OSErr error;
  234.     SOM_TRY
  235.         somSelf->CheckValid(ev);
  236.         error = _fHelper->CallDisposeTokenProc((ODPart*)somSelf->GetBase(ev),
  237.                                                     unneededToken);
  238.         THROW_IF_ERROR(error);
  239.     SOM_CATCH_ALL
  240.     SOM_ENDTRY
  241. }
  242.  
  243. //------------------------------------------------------------------------------
  244. // CappuccinoSI::CallGetErrDescProc
  245. //------------------------------------------------------------------------------
  246.  
  247. SOM_Scope void  SOMLINK CappuccinoSICallGetErrDescProc(CappuccinoSI *somSelf, Environment *ev,
  248.         ODPart* thePart,
  249.         ODDesc** errDesc)
  250. {
  251.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  252.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallGetErrDescProc");
  253.  
  254.     OSErr error;
  255.     SOM_TRY
  256.         somSelf->CheckValid(ev);
  257.         error = _fHelper->CallGetErrDescProc((ODPart*)somSelf->GetBase(ev),
  258.                                                 errDesc);
  259.         THROW_IF_ERROR(error);
  260.     SOM_CATCH_ALL
  261.     SOM_ENDTRY
  262. }
  263.  
  264. //------------------------------------------------------------------------------
  265. // CappuccinoSI::CallGetMarkTokenProc
  266. //------------------------------------------------------------------------------
  267.  
  268. SOM_Scope void  SOMLINK CappuccinoSICallGetMarkTokenProc(CappuccinoSI *somSelf, Environment *ev,
  269.         ODPart* thePart,
  270.         ODOSLToken* dContainerToken,
  271.         ODDescType containerClass,
  272.         ODOSLToken* result)
  273. {
  274.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  275.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallGetMarkTokenProc");
  276.  
  277.     OSErr error;
  278.     SOM_TRY
  279.         somSelf->CheckValid(ev);
  280.         error = _fHelper->CallGetMarkTokenProc((ODPart*)somSelf->GetBase(ev),
  281.                                                     dContainerToken,
  282.                                                     containerClass, result);
  283.         THROW_IF_ERROR(error);
  284.     SOM_CATCH_ALL
  285.     SOM_ENDTRY
  286. }
  287.  
  288. //------------------------------------------------------------------------------
  289. // CappuccinoSI::CallMarkProc
  290. //------------------------------------------------------------------------------
  291.  
  292. SOM_Scope void  SOMLINK CappuccinoSICallMarkProc(CappuccinoSI *somSelf, Environment *ev,
  293.         ODPart* thePart,
  294.         ODOSLToken* dToken,
  295.         ODOSLToken* markToken,
  296.         ODSLong index)
  297. {
  298.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  299.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallMarkProc");
  300.  
  301.     OSErr error;
  302.     SOM_TRY
  303.         somSelf->CheckValid(ev);
  304.         error = _fHelper->CallMarkProc((ODPart*)somSelf->GetBase(ev), dToken,
  305.                                             markToken, index);
  306.         THROW_IF_ERROR(error);
  307.     SOM_CATCH_ALL
  308.     SOM_ENDTRY
  309. }
  310.  
  311. //------------------------------------------------------------------------------
  312. // CappuccinoSI::CallAdjustMarksProc
  313. //------------------------------------------------------------------------------
  314.  
  315. SOM_Scope void  SOMLINK CappuccinoSICallAdjustMarksProc(CappuccinoSI *somSelf, Environment *ev,
  316.         ODPart* thePart,
  317.         ODSLong newStart,
  318.         ODSLong newStop,
  319.         ODOSLToken* markToken)
  320. {
  321.     CappuccinoSIData *somThis = CappuccinoSIGetData(somSelf);
  322.     CappuccinoSIMethodDebug("CappuccinoSI","CappuccinoSICallAdjustMarksProc");
  323.  
  324.     OSErr error;
  325.     SOM_TRY
  326.         somSelf->CheckValid(ev);
  327.         error = _fHelper->CallAdjustMarksProc((ODPart*)somSelf->GetBase(ev),
  328.                                                 newStart, newStop, markToken);
  329.         THROW_IF_ERROR(error);
  330.     SOM_CATCH_ALL
  331.     SOM_ENDTRY
  332. }
  333.  
  334.